/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb.negocio;


import ejb.dao.UsuarioDAOLocal;
import ejb.dao.VendedorDAOLocal;

import entidades.TipoUsuario;
import entidades.Usuario;
import entidades.Vendedor;
import java.util.Calendar;
import javax.ejb.EJB;
import javax.ejb.Stateless;


 
@Stateless
public class GestorUsuariosService implements GestorUsuariosServiceLocal {

    @EJB
    UsuarioDAOLocal usuarioDAO;
    @EJB
    VendedorDAOLocal vendedorDAO;

    @Override
    public boolean autenticarUsuario(String login, String passwordPlano) {
        Usuario usuario;
        boolean resultado = false;

        usuario = usuarioDAO.buscarPorLogin(login);
        if (usuario != null) {
            if (usuario.getClave().equals(passwordPlano)) {
                resultado = true;
            }
        }

        return resultado;
    }

    @Override
    public Vendedor recuperarDatosVendedor (String login) {
        return vendedorDAO.buscarPorLogin(login);
    }

    @Override
    public Vendedor crearNuevoVendedor (String login, String password, Vendedor datosNuevoVendedor) {
        // Crear el usuario (de tipo Vendedor)
        Usuario nuevoUsuario = usuarioDAO.crear(new Usuario(login, password, TipoUsuario.VENDEDOR));
        // Enlazarlo al VENDEDOR
        datosNuevoVendedor.setIdUsuario(nuevoUsuario);
        // Crear el vendedor
        return vendedorDAO.crear(datosNuevoVendedor);
    }

    @Override
    public Vendedor actualizarDatosVendedor(Vendedor datosVendedor) {
        return vendedorDAO.actualizar(datosVendedor);
    }

    @Override
    public Usuario actualizarPassword(long idUsuario, String password) {
        Usuario usuario = usuarioDAO.buscarPorId(idUsuario);
        usuario.setClave(password);
        return usuarioDAO.actualizar(usuario);
    }

    @Override
    public Usuario actualizarUltimoAcceso(long idUsuario) {
        Usuario usuario = usuarioDAO.buscarPorId(idUsuario);
        usuario.setUltimoAcceso(Calendar.getInstance().getTime());  // Tiempo actual
        return usuarioDAO.actualizar(usuario);
    }

    @Override
    public boolean existeUsuario(String login) {
        return (usuarioDAO.buscarPorLogin(login) != null);
    }
    
    

}